package com.java.mybatis.service;

import com.java.mybatis.entity.Employees;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (Employees)表服务接口
 *
 * @author makejava
 * @since 2021-01-15 17:10:28
 */
public interface EmployeesService {

    /**
     * 牟恩跃----模糊查询
     * @param employeesName
     * @return
     * @throws Exception
     */
    List<Employees> employeeslike(String employeesName)throws Exception;
    /**
     * 牟恩跃--条件查询
     * @param employees
     * @return
     */
    List<Employees> employeesList(Employees employees);
    /**
     * 通过ID查询单条数据
     *
     * @param employeesId 主键
     * @return 实例对象
     */
    Employees queryById(Integer employeesId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<Employees> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param employees 实例对象
     * @return 实例对象
     */
    Employees insert(Employees employees);

    /**
     * 修改数据
     *
     * @param employees 实例对象
     * @return 实例对象
     */
    int update(Employees employees);

    /**
     * 通过主键删除数据
     *
     * @param employeesId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer employeesId);

    /**
     * 通过实体作为筛选条件查询
     *
     * @param employees 实例对象
     * @return 对象列表
     */
    List<Employees> queryAll(Employees employees);

    /**
     * 登录方法
     * @param empUserName  登录名
     * @param empUserPwd   密码
     * @return
     */
    Employees login(String empUserName,String empUserPwd);
    /**
     * 查询所有员工信息的方法
     * @return 对象序列
     */
    List<Employees> queryAllEmp();
    /**
     * 分页查询所有员工信息的方法
     */
    List<Employees>getAllEmp(Integer page, Integer size)throws Exception;
    /**
     * 查询总行数的方法
     */
    Integer getEmpCount()throws Exception;
    /**
     * 启用的方法
     * @throws Exception
     */
    void upEmployeesCodeUp(@Param("id") Integer id)throws Exception;

    /**
     * 禁用的方法
     * @throws Exception
     */
    void upEmployeesCodeDown(@Param("id") Integer id)throws Exception;
    /**
     * 模糊查询员工姓名的方法
     * @param employeesName 员工姓名
     * @return 对象序列
     */
    List<Employees> queryLikeName(String employeesName);


    /**
     * 查询所有物流员
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    List<Employees> SelEmpAll(Integer page,Integer size)throws Exception;


    /**
     * 查询物流员总行数
     * @return
     * @throws Exception
     */
    Integer SelEmpCount()throws Exception;

    /**
     * 根据姓名模糊查询配送员
     * @param name
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    List<Employees>SelEmpNameLike(String name, Integer page, Integer size)throws Exception;

    /**
     * 根据姓名模糊查询配送员总行数
     * @return
     * @throws Exception
     */
    Integer SelEmpNameLikeCount(String name)throws Exception;
}